Managing how current files of a product are at the time of release

ABSTRACT

A system and method for managing the currentness of files of a product at the time of release to manufacturing. A data extractor and populator extracts attributes of features in a master model and populates the extracted information in drawing files and NC machining data files. A version control system manages versions of the master model and the files. A release unit releases a version of the files that is current with the latest version of the master model.

BACKGROUND OF THE INVENTION

This invention relates generally to computer-aided design (CAD) andcomputer-aided manufacturing (CAM) and more particularly to determiningwhether files generated from a CAD/CAM system are current at the time ofrelease to manufacturing.

Typically, a designer uses a CAD/CAM system for designing andmanufacturing a part. In particular, the designer uses the CAD/CAMsystem to generate a model (e.g., a two or three dimensional model) ofthe part. After generating the model, the designer uses the CAD/CAMsystem to manually prepare a set of drawings of the design and generatenumerical control (NC) machining data. If the drawings and the NCmachining data are satisfactory, then the designer releases them tomanufacturing for production of the part. Sometimes during manufacturinga problem may arise which necessitates a revision to the design of thepart. When a revision is necessary, the designer has to make changes tothe model as well as to the drawings and the NC machining data. Beforemaking revisions to the model, the drawings and the NC machining data,the designer has to make sure that he or she is working with the latestversion.

Determining whether one is working with the latest version is not thateasy because it is quite likely that others may have made severalchanges to the model, the drawings or the NC machining data after theiroriginal release to manufacturing. Some of these changes may not beapparent to the next user. For example, a few of the currently availableCAD/CAM systems are able to directly associate information in thedrawings and the NC machining data with the model. This capabilityallows associated information in the drawings and the NC machining datato be treated as a collection. Thus, changes to the associatedinformation in the model are propagated to the related files for thedrawings or the NC machining data. These changes are apparent to thenext user, however, there is a significant portion of information neededto manufacture the part that is not directly associable with the model.Notes, annotations, numerical analysis results, design data bookparameters and calculations and surface finish requirements are examplesof some information that is not directly associable with the model, eventhough it may be represented or derived from the information containedin the model. Changes to information that does not necessarily propagatefrom the model to the drawings or the NC machining data will not bereadily apparent to the next user. In order to make any necessaryrevisions, it is necessary that persons downstream of conceptual designbe able to access the most current model, drawings and NC machiningdata. This will avoid costly mistakes and reduce the time that a productis brought to market. Therefore, there is a need for a system and methodthat can manage the currentness of models, drawings and NC files in adesign and manufacturing environment.

BRIEF SUMMARY OF THE INVENTION

In accordance with this invention, there is provided a system, a methodand an article of manufacture for managing how current files of aproduct are at the time of release. In this invention, there is a mastermodel of the product. Also, there is at least one data file generatedfrom the master model, wherein the at least one data file comprises datanon-associated with the master model. A version control system managesversions of the master model and the at least one data file. The versioncontrol system comprises means for defining dependencies betweenversions of the at least one data file and the master model. A releaseunit releases a version of the at least one data file that is currentwith the latest version of the master model.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows a block diagram of a system for managing the currentness ofa model, drawings and NC machining files according to this invention;

FIG. 2 shows a block diagram of the processing architecture of thesystem shown in FIG. 1;

FIG. 3 shows a more detailed view of the architecture shown in FIG. 2;

FIG. 4 shows a flow chart setting forth the steps performed according tothis invention; and

FIG. 5 shows a flow chart setting forth the steps performed by therelease unit shown in FIG. 2.

DETAILED DESCRIPTION OF THE INVENTION

FIG. 1 shows a block diagram of a system 10 for managing the currentnessof a model, drawings and NC machining files according to this invention.The system 10 comprises a computer workstation 12 such as a CAD/CAMsystem containing a keyboard 14, a mouse device 16 and a monitor 18. TheCAD/CAM system 12 may be any commercially available system such as anUnigraphics CAD/CAM system or a NuForm CAD/CAM system. The CAD/CAMsystem 12 comprises a processor and memory including random accessmemory (RAM), read only memory (ROM) and/or other components. TheCAD/CAM system 12 operates under control of an operating system storedin the memory to present data on the display of the monitor and toaccept and process commands via the keyboard 14 and the mouse device 16.

The CAD/CAM system 12 contains one or more computer programs forimplementing this invention. A computer-readable medium such as a fixeddata storage device tangibly embody the computer programs and theCAD/CAM's operating system. The computer programs are programmed in C,but other languages such as FORTRAN, C⁺⁺, JAVA, etc. may be used. Adesigner uses the computer programs stored in the CAD/CAM system 12through a graphical user interface to generate a master model 20 from aplurality of model features stored in a database 22. A data populationand extraction program extracts attributes from the model features usedin the master model, and automatically populates the extractedattributes into data files such as drawings 24 and NC machining datafiles 26. A version control program manages the versions of the mastermodel, drawing files and the NC machining files as well as associates aparent child relationship between the drawing files and the NC machiningfiles and the master model. A release program determines if the drawingfiles or the NC machining files released for manufacture are current. Inparticular, the release program determines whether the master model haschanged since the drawing files or NC machining files have beengenerated or updated. This is done by determining whether the parentmaster model of the dependent drawing and NC machining files is the mostcurrent version of that model.

FIG. 2 shows a block diagram of the processing architecture of thisinvention. A designer accesses the system 10 via an input/output unit28. A processor 30 is responsive to the inputs made by the designer viathe input/output unit 28. In order to enable the designer to design aproduct, the processor 30 uses a CAD/CAM tool 32. The designer uses theCAD/CAM tool 32 to build the master model 20 of the design from aplurality of model features. After building the master model 20, theprocessor 30 executes a version control system 34 for managing themodel. The version control system 34 compares the contents of thecurrent version of the master model 20 already in the version controlsystem with the newly generated or updated version. If differences doexist, then the version control system 34 stores the new version of themodel and assigns a time stamp thereto to indicate the time and date.The version control system 34 uses a time stamp log to record each timestamp assigned for the model. Alternatively, if there is no differencein the contents between the versions, then the version control system 34maintains the current version of the master model.

The processor 30 uses a data extractor and populator 36 to extractattributes of features used in the master model 20. After extracting thedata from the master model 20, the data extractor and populator 36populates the extracted data in the drawing files 24 and NC machiningdata files 26. A more detailed discussion of the data extractor andpopulator 36 is set forth in U.S. patent application Ser. No.09/236,424, entitled EXTRACTING DATA FROM AN N-DIMENSIONAL MODEL ANDPOPULATING FILES WITH THE EXTRACTED DATA filed concurrently herewith, isincorporated herein by reference. Each drawing file and NC data filepopulated by the data extractor and populator 36 contains a means forlogging a time stamp when the data extraction and population program isexecuted.

The processor 30 executes the version control system 34 as the datapopulator and extractor 36 populates the drawing files 24 and the NCmachining data files 26. After the drawing files 24 and the NC machiningdata files 26 have been populated, the version control system 34compares the contents of the current version of the drawing files and NCdata files already in the version control system with the newlypopulated version. If differences do exist, then the version controlsystem 34 stores the new version of the files and assigns a time stampthereto to indicate the time and date. The time stamp is generated bychecking with the real time computer clock. Alternatively, if there isno difference in the contents between the versions, then the versioncontrol system 34 maintains the current version of the files.

The version control system 34 also examines the files and defines thedependencies between the files. The dependencies include information inthe drawing files 24 and the NC data files 26 that is associated withthat in the master model 20. The version control system 34 places thedefined dependencies in a dependency model 38. The dependency modeldefines which specific files define information which if changed affectthe consistency, quality and accuracy of information in other specificfiles. In this invention, the dependency model 38 is not limited to adependency configuration and can be either a hierarchical or chainmodel.

When it comes time to release the drawing files 24 and NC data files 26to manufacturing, the processor 30 executes the release unit 40 whichcontains a release program for determining if the files being releasedare current. The release program determines if the files are current bydetermining whether the parent master model of the dependent drawing andNC machining files is the most current version of that model. This isdone by using the version control system 34 and the dependency model 38to find the parent model and the dependent files and compare the loggedtime stamp of the dependent files with the parent model. If the parentmodel has an earlier time stamp than that of the dependent files, thenthe dependent files are current. Otherwise, the dependent model and allof the files that depend on it are not current. The processor 30 informsthe user through the input/output unit 28 as to whether the files arecurrent. If the files are not current, then the processor informs theuser that the files are not current and release to manufacturing cannotproceed. Alternatively, if the files are current, then the files can bereleased to manufacturing.

FIG. 3 shows a more detailed view of the architecture shown in FIG. 2.In FIG. 3, the version control system 34 contains two versions of amaster model 20 (i.e., version 1.0 and version 1.1). The data extractorand populator 36 extracts data from master model version 1.0 andpopulates it into the drawing file 24 and an NC machining data file 26.A time stamp log 42 in the version control system 34 records each timestamp assigned for the drawing file 24 and the NC machining data file.The version control system 34 compares the contents of the currentversion of the drawing files and NC data files already in the versioncontrol system with the newly populated version. If differences doexist, then the version control system 34 stores the new version of thefiles and assigns a time stamp thereto to indicate the time and date. Ifthere is no difference in the contents between the versions, then theversion control system 34 maintains the current version. The versioncontrol system 34 puts dependency information from the drawing file 24and the NC data file 26 into the dependency model 38. When it comes timeto release the drawing file 24 and NC data file 26 to manufacturing, therelease unit 40 determines if the files being released are current inthe above-described manner.

In order to release the master model version 1.1, the version controlsystem 34 will compare the contents of the current version of the mastermodel already in the version control system with the newly generated orupdated master model version 1.1. If differences do exist, then theversion control system 34 stores the new version 1.1 of the model andassigns a time stamp thereto to indicate the time and date. If there isno difference in the contents between the versions, then the versioncontrol system 34 maintains the current version of the master model.

FIG. 4 shows a flow chart setting forth the steps performed in thisinvention. FIG. 4 starts at 44 where the designer manipulates the mastermodel to make changes thereto. The manipulation of the master modelcontinues until the designer finishes as determined at 46. The designerreleases the master model at 48. The release performed here is not thesame as the formal release performed by the release unit 40. The releaseperformed at block 48 includes checking the master model to determine ifit is fixed so that others can work from it. After the master model hasbeen released, then the processor logs into the version control systemat 50. The version control system 34 compares the contents of thecurrent version of the master model 20 already in the version controlsystem with the released version. If differences do exist, then theversion control system 34 stores the new version of the model andassigns a time stamp thereto to indicate the time and date. If there isno difference in the contents between the versions, then the versioncontrol system 34 maintains the current version of the master model.

At 52, the master model is used to generate other engineering data. Forexample, the master model may be used to generate a numerical analysismodel for functionality or manufacturability evaluation. Also,information from the master model may be used to calculate manufacturingparameters. These functions may be done manually or programmatically asin the case of the data extractor and populator, which puts this datainto data files associated with the master model at 54. In particular,the data extractor and populator extract attributes of features used inthe master model to drawing files and NC machining files. While the dataextractor and populator are extracting and populating data into theassociated files, the processor logs into the version control system at56. The version control system 34 compares the contents of the currentversion of the drawing files and NC data files already in the versioncontrol system with the newly populated version. If differences doexist, then the version control system 34 stores the new version of thefiles and assigns a time stamp thereto to indicate the time and date. Ifthere is no difference in the contents between the versions, then theversion control system 34 maintains the current version. In addition,the version control system examines each of the files and defines thedependencies between the files at 58. Steps 54-58 are repeated until itis determined at 60 that there are no more files. When dependencies havebeen defined for all of the files, then the formal release is initiatedat 62.

FIG. 5 shows a flow chart setting forth the steps of the formal release.In the formal release, the release unit 40 obtains the master model anddependent files from the version control system at 64. Also, the releaseunit 40 retrieves the time stamp log from the version control system at66. The release unit compares the logged time stamp for the dependentfiles with the last save time of the master model at 68. At 70, therelease unit determines if the master model and the dependent files arecurrent. If the files are current as determined at 72, then the formalrelease is finished, however, if the files are not current, then theuser is informed that the files are not up to date at 74. The files arethen updated at 76 and steps 64-72 are repeated until the files arecurrent.

It is apparent that there has been provided in accordance with thepresent invention, a system and method for managing how current files ofa product are at the time of release in a design and manufacturingenvironment. Advantages of this invention are that costly mistakes areavoided and that time to bring a product to market is reduced. Otheradvantages include discovery of inconsistencies, the ability toincorporate agility and concurrent engineering into design processes anddivide roles across and between organizational structures quickly andefficiently.

While the invention has been particularly shown and described inconjunction with a preferred embodiment thereof, it will be appreciatedthat variations and modifications can be effected by a person ofordinary skill in the art without departing from the scope of theinvention.

What is claimed is:
 1. A system for managing how current files of aproduct are at time of release, comprising: a master model of theproduct; a plurality of data files arbitrarily associated with themaster model; a version control system for managing versions of themaster model and the plurality of data files according to dependenciesdefined for the associations between the master model and the pluralityof data files; and a release unit for releasing a version of any of theplurality of data files that is current with the latest version of themaster model.
 2. The system according to claim 1, wherein each of theplurality of data files comprise a view of the master model.
 3. Thesystem according to claim 1, wherein the plurality of data filescomprise NC data files.
 4. The system according to claim 1, furthercomprising a data extraction and population unit for extracting datafrom the master model and populating the extracted data in the pluralityof data files.
 5. The system according to claim 1, wherein the versioncontrol system comprises a time stamp log for logging time stamps atwhich the master model and the plurality of data files have beenprocessed.
 6. The system according to claim 5, wherein the release unitcompares the time stamps for the plurality of data files with the latesttime stamp of the master model.
 7. The system according to claim 1,wherein the version control system further comprises means for comparingcontents of the master model and the plurality of data files withcurrent versions thereof.
 8. The system according to claim 1, whereinthe version control system further comprises means for definingdependencies between versions of the plurality of data files and a chainof dependencies with the master model as the root.
 9. A method formanaging how current files of a product are at time of release,comprising: obtaining a master model of the product; generating aplurality of data files arbitrarily associated with the master model;defining dependencies between the plurality of data files and the mastermodel; managing versions of the master model and the plurality of datafiles in accordance with the defined dependencies; and releasing aversion of any of the plurality of data files that is current with thelatest version of the master model.
 10. The method according to claim 9,wherein each of the plurality of data files comprise a view of themaster model.
 11. The method according to claim 9, wherein the pluralityof data files comprise NC data files.
 12. The method according to claim9, further comprising extracting data from the master model andpopulating the extracted data in the plurality of data files.
 13. Themethod according to claim 9, wherein the managing of versions compriseslogging time stamps at which the master model and the plurality of datafiles have been processed.
 14. The method according to claim 13, whereinthe releasing of a version comprises comparing the time stamps for theplurality of data files with the latest time stamp of the master model.15. The method according to claim 9, wherein the managing of versionscomprises comparing contents of the master model and the plurality ofdata files with current versions thereof.
 16. The method according toclaim 9, wherein the defining dependencies comprises versions of theplurality of data files and a chain of dependencies with the mastermodel as the root.
 17. An article of manufacture, comprising: a computerusable medium containing computer readable program code means embodiedtherein for managing how current files of a product are at time ofrelease, the computer readable program code means in the article ofmanufacture comprising: computer readable program code means forobtaining a master model of the product; computer readable program codemeans for generating a plurality of data files arbitrarily associatedwith the master model; computer readable program code means for definingdependencies between the plurality of data files and the master model;computer readable program code means for managing versions of the mastermodel and the plurality of data files in accordance with the defineddependencies; and computer readable program code means for releasing aversion of any of the plurality of data files that is current with thelatest version of the master model.
 18. The article of manufactureaccording to claim 17, wherein each of the plurality of data filescomprise a view of the master model.
 19. The article of manufactureaccording to claim 17, wherein the plurality of data files comprise NCdata files.
 20. The article of manufacture according to claim 17,further comprising computer readable program code means for extractingdata from the master model and populating the extracted data in theplurality of data files.
 21. The article of manufacture according toclaim 17, wherein the managing computer readable program code meanscomprises computer readable program code means for logging time stampsat which the master model and the plurality of data files have beenprocessed.
 22. The article of manufacture according to claim 21, whereinthe releasing computer readable program code means comprises computerreadable program code means for comparing the time stamps for theplurality of data files with the latest time stamp of the master model.23. The article of manufacture according to claim 17, wherein thedefining dependencies computer readable program code means comprisesversions of the plurality of data files and a chain of dependencies withthe master model as the root.
 24. A system for managing how currentfiles of a product are at time of release, comprising: a plurality ofdata files, wherein each data file has an arbitrarily association withthe other data files; a version control system for managing versions ofthe plurality of data files according to dependencies defined for thearbitrary associations between each of the plurality of data files; anda release unit for releasing a version of any of the plurality of datafiles that is current with the latest version of another associated datafile.
 25. The system according to claim 24, further comprising a dataextraction and population unit for extracting data from any of theplurality of data files and populating the extracted data in anassociated data file.
 26. The system according to claim 24, wherein theversion control system comprises a time stamp log for logging timestamps at which any of the associated data files have been processed.27. The system according to claim 26, wherein the release unit comparesthe time stamps for any of the plurality of data files with the latesttime stamp of their associated data files.
 28. The system according toclaim 24, wherein the version control system further comprises means forcomparing contents of any of the plurality of data files and theirassociated data files with current versions thereof.
 29. A method formanaging how current files of a product are at time of release,comprising: generating a plurality of data files, wherein each data filehas an arbitrarily association with the other data files; definingdependencies for the arbitrary associations between each of theplurality of data files; managing versions of the plurality of datafiles in accordance with the defined dependencies; and releasing aversion of any of the plurality of data files that is current with thelatest version of another associated data file.
 30. The method accordingto claim 29, further comprising extracting data from any of theplurality of data files and populating the extracted data in anassociated data file.
 31. The method according to claim 29, wherein themanaging of versions comprises logging time stamps at which any of theassociated data files have been processed.
 32. The method according toclaim 31, wherein the releasing of a version comprises comparing thetime stamps for any of the plurality of data files with the latest timestamp of their associated data files.
 33. The method according to claim29, wherein the managing of versions comprises comparing contents of anyof the plurality of data files and their associated data files withcurrent versions thereof.
 34. An article of manufacture, comprising: acomputer usable medium containing computer readable program code meansembodied therein for managing how current files of a product are at timeof release, the computer readable program code means in the article ofmanufacture comprising: computer readable program code means forgenerating a plurality of data files, wherein each data file has anarbitrarily association with the other data files; computer readableprogram code means for defining dependencies for the arbitraryassociations between each of the plurality of data files; computerreadable program code means for managing versions of the plurality ofdata files in accordance with the defined dependencies; and computerreadable program code means for releasing a version of any of theplurality of data files that is current with the latest version ofanother associated data file.
 35. The article of manufacture accordingto claim 34, further comprising computer readable program code means forextracting data from any of the plurality of data files and populatingthe extracted data in an associated data file.
 36. The article ofmanufacture according to claim 34, wherein the managing computerreadable program code means comprises computer readable program codemeans for logging time stamps at which any of the associated data fileshave been processed.
 37. The article of manufacture according to claim36, wherein the releasing computer readable program code means comprisescomputer readable program code means for comparing the time stamps forany of the plurality of data files with the latest time stamp of theirassociated data files.
 38. The article of manufacture according to claim34, wherein the managing computer readable program code means comprisescomputer readable program code means for comparing contents of any ofthe plurality of data files and their associated data files with currentversions thereof.